Visualization of complex systems using buildings

ABSTRACT

Provided herein are approaches for generating a visualization of software code using a set of buildings. Specifically, one approach comprises: representing software code using a set of buildings in a virtual city environment, wherein each building of the set of buildings represent a software solution; displaying the set of buildings in the virtual city environment; and displaying a plurality of floors and a plurality of rooms within each of the plurality of floors of the set of buildings, wherein each of the plurality of floors of a building of the set of buildings represents a software component of the software solution represented by the building, and wherein each of the plurality of rooms within each floor of the building represents a different version of the software component represented by the floor of the building.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of, and claims the benefit of,co-pending and co-owned U.S. patent application Ser. No. 12/182,328,filed Jul. 30, 2008, having attorney docket number END920080079US1, theentire contents of which are herein incorporated by reference.

FIELD OF THE INVENTION

The present invention relates to data visualization, and morespecifically to the visualization of complex systems such as softwareofferings using a set of buildings.

BACKGROUND OF THE INVENTION

Many complex systems consist of a number of phases, including, forexample, initial concept, design and development, testing, support,quality, etc. Each of these phases contains a plethora of informationabout the specific entity that is present in numerous disparateknowledge repositories. As such, it is often difficult to find andunderstand specific or related information about a complex system, aswell as the interactions and intra-actions between various phases of thecomplex system. In many instances, the amount of information availableis vast, and finding and understanding the relevant information neededby the user may be prohibitively complex, particularly when using thetraditional two-dimensional rendering of search results.

SUMMARY OF THE INVENTION

A first aspect of the present invention is directed to a method forgenerating a visualization of software code using a set of buildings,comprising: representing software code using a set of buildings in avirtual city environment, wherein each building of the set of buildingsrepresent a software solution; displaying the set of buildings in thevirtual city environment; and displaying a plurality of floors and aplurality of rooms within each of the plurality of floors of the set ofbuildings, wherein each of the plurality of floors of a building of theset of buildings represents a software component of the softwaresolution represented by the building, and wherein each of the pluralityof rooms within each floor of the building represents a differentversion of the software component represented by the floor of thebuilding.

A second aspect of the present invention is directed to a computersystem for generating a visualization of software code using a set ofbuildings comprising: at least one processing unit; memory associatedwith the at least one processing unit; and a visualization tool storablein memory and executable by the at least one processing unit, thevisualization tool comprising a display component configured to: displaythe set of buildings and the plurality of interconnections in thevirtual city environment; and display a plurality of floors and aplurality of rooms within each of the plurality of floors of the set ofbuildings, wherein each of the plurality of floors of a building of theset of buildings represents a software component of the softwaresolution represented by the building, and wherein each of the pluralityof rooms within each floor of the building represents a differentversion of the software component represented by the floor of thebuilding.

A third aspect of the invention is directed to a computer-readablephysical storage device storing computer instructions, which whenexecuted, generates a visualization of software code using a set ofbuildings, the computer instructions comprising: representing softwarecode using a set of buildings in a virtual city environment, whereineach building of the set of buildings represent a software solution; anddisplaying a plurality of floors and a plurality of rooms within each ofthe plurality of floors of the set of buildings, wherein each of theplurality of floors represents a software component of the softwaresolution represented by the building, and wherein each of the pluralityof rooms within each floor of the building represents a differentversion of the software component represented by the building.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a visualization of a software offering programming codebase in accordance with an embodiment of the present invention;

FIG. 2 depicts an illustrative example of a visualization of softwareofferings in accordance with an embodiment of the present invention;

FIG. 3 shows a more detailed view of the software offerings of FIG. 2;

FIG. 4 shows an is an illustration of a potential result from afront-end search according to an embodiment of the present invention;

FIG. 5 depicts an illustrative example of a panel used for selecting acomponent of a software offering according to the present invention;

FIG. 6 depicts an illustrative example of a room within a building,which corresponds to a stage of a software offering according to thepresent invention;

FIG. 7 depicts an illustrative computer system for implementingembodiment(s) of the present invention; and

FIG. 8 depicts a flow diagram of a method for generating a visualizationof a software offering using a set of buildings according to the presentinvention.

The drawings are not necessarily to scale. The drawings are merelyschematic representations, not intended to portray specific parametersof the invention. The drawings are intended to depict only typicalembodiments of the invention, and therefore should not be considered aslimiting the scope of the invention. In the drawings, like numberingrepresents like elements.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments of this invention are directed to visualizing a complexsystem using a set of buildings in a virtual city environment. In theseembodiments, a visualization tool provides the capability to provide avisualization of the information of a complex system (i.e., an offering,product, service or solution) in the form of cities, or a set ofbuildings (i.e., one or more buildings) in a virtual world or video.This includes visualization of buildings, floors, rooms within thebuildings, the landscape around the buildings, routes between buildings,means of transport between floors in the buildings, the weathersurrounding the buildings, and other visual characteristics as will bedescribed below.

The present invention takes information about a complex system andprovides a visual representation of the complex system or a portion ofthe complex system. For purposes of illustration, the complex system ofthe present invention will be described hereinafter as a softwareoffering. However, it can be appreciated that the complex system caninclude virtually any type of data or process that may be representedvisually within a virtual city environment. Further, the presentinvention is not limited to offerings available on a market. In fact,any type of entity that has multiple phases, customer (or some othertype of) satisfaction, etc., can leverage embodiments of the system andmethod of the present invention. This includes, for example, electronicdata and/or records, which are used by historians, lawyers, detectives,government officials, etc.

As depicted in FIG. 1, the present invention can be configured to takedata 10 from a large software code base, such as software offeringprogramming code base 12, and provide a visualization, such asvisualization 14 of a number of software offerings 13A-13B (hereinaftercollectively referred to as software offerings 13) in the form ofbuildings, cities, or portions of cities. Software offerings 13 includea number of components 17A-17F (hereinafter collectively referred to ascomponents 17). Visualization 14 can be two-dimensional, as shown, orthree-dimensional. The buildings used in the visualization can comprisereal or imaginary structures including, but not limited to: houses,office buildings, hospitals, apartment buildings, stores or othersimilar structures. These examples of information found in softwareoffering programming code base 12 are only illustrative of some thingsthat may be found and are not exhaustive. Furthermore, the number ofsoftware offerings 13 and components 17 shown in FIG. 1 is only forillustration purposes and it can be appreciated that any number ofsoftware offerings 13 and components 17 can be used in the practice ofthe present invention.

An illustrative example of visualization 14 of one of software offerings13 in a virtual city environment 15 in accordance with an embodiment ofthe present invention is depicted in FIG. 2. In this example, virtualcity environment 15 is shown as having a set of buildings 16A, 16B, 16C(collectively referred to hereinafter as buildings 16), each buildingcorresponding to a software offering. Each software offering cancorrespond to a group of buildings, a single building, or a specificportion of virtual city environment 15. Like the real-world, eachvirtual city environment 15 comprises a living landscape having virtualcontent, such as buildings, stores, clubs, sporting arenas, parks,beaches, cities and towns all created by residents of the universe thatare represented by avatars 38. A single virtual city environment 15 isshown in FIG. 2 for illustration purposes; however, many moreenvironments may be found in a typical virtual universe, or,alternatively, one environment in a small virtual universe. Furthermore,although only three buildings 16A-16C are depicted in FIG. 2, any numberof buildings 16 can be used in the practice of the invention.

FIG. 3 shows a more detailed view of one possible software offering,such as software offering 13A as discussed in relation to FIG. 2, usingbuildings 16A, 16B according to the present invention. In this example,the number of floors and the overall size of building 16A areproportional to the number of components 17 of the software offeringcorresponding to building 16A. As shown, building 16A includes aplurality of floors 21 and a plurality of rooms 23A, 23B, 23C, 23D, 23D,23E, 23P, each of the floors 21A, 21B, 21C,21D representing a componentof the software offering. In this example, the software offering hasfour components corresponding to four floors 21A-21D. However, inanother embodiment, a group of floors can represent a single component,wherein each floor is a different version of the software offering, ordifferent rooms on the same floor can represent different versions ofthe component. Although not shown for the sake of clarity, building 16Bmay also include a plurality of floors and rooms, similar to that ofbuilding 16A.

As shown in FIG. 3, each of the plurality of floors 21 is joined byinterconnections 25. The interconnections may take on a variety offorms, including, but not limited to: portals, elevators, stairs,escalators, fireman's poles, and other similar interconnections. Eachinterconnection 25 represents a communication between the components ofthe software offering. The type and number of interconnections 25 maydepict the relative ease of communication between each component. Forexample, based on the number of interconnections 25, as well as the typeof interconnections 25, components 21C and 21D depicted in FIG. 3 aremore highly connected than components 21A and 21B. Although notexplicitly shown, it can be appreciated that any number of differentinterconnections 25 may exist between each of the plurality of floors21.

Furthermore, as also shown in FIG. 3, buildings 16 are connected by aset of interconnections 18 between the buildings. Interconnections 18may take on a variety of virtual forms including, but not limited to:paths, streets, railroads, subways, catwalks, bridges, tightropes etc.Interconnections 18 reflect the level of interconnectivity betweensoftware offerings 13 of interconnected buildings 16. This visualizationalso brings together disparate sources of data including, but notlimited to: problem reporting sources, design databases, test caserepositories, original anecdote repositories from developers,architects, testers and people who have worked on the code componentsthrough time, etc., and links these sources to the pertinent building.The type of path, or the traffic between buildings represents thedataflow in and out of the software offering. Each different type ofinterconnection 18 may have a specific meaning, or could be used torepresent interactions between solutions. In one embodiment, a highernumber of interconnections 18 between the buildings 16 represents ahigher connectivity between corresponding software offerings 13.

Another visualization feature of the present invention is the use ofweather characteristics surrounding each of buildings 16. The type ofweather surrounding a building, such as building 16A (or a group orsubset of buildings) is used to specify the level of customersatisfaction with the software offering represented visually by thebuilding. Weather characteristics surrounding building 16A may bedynamically adjusted based on a satisfaction level for software offering13. For example, as shown in FIG. 3, the presence of a sun 32 representsa high customer satisfaction. In another embodiment, a hazy or overcastsky may represent medium customer satisfaction. The presence oflightning and/or thunderstorms in another embodiment could represent lowcustomer satisfaction. Audio may also be added to enhance the visualweather characteristics. For example, a bright and sunny day may beaccompanied by the sound of birds chirping, calming waves, or some otherpleasant sound, whereas thunderstorms may be accompanied by the actualsounds of these storms.

Referring now to FIGS. 4-6, another illustrative example of thevisualization of a software offering according to the present inventionwill be described in more detail. In this example, consider a user thatis interested in learning more about Advanced Interactive eXecutive(AIX®), which is contained in Solution A in this example. (“AIX” isregistered trademark of International Business Machines Corporation.)The user would then go to a web site that is a front end for searchinginformation in a virtual world and type in “Solution A” as keywords.FIG. 4 is an illustration of a potential result from this search. FIG. 4includes options 28A-28N for teleporting to a specific site (e.g., abuilding) in the virtual world that contains more information aboutSolution A. The user may then click on the “Teleport to A” button ofoption 28A.

Avatar 38 will then be teleported to the front of a buildingcorresponding to Solution A, such as Building 16A as shown and discussedin the context of FIG. 3. The outward appearance of the building mayprovide information to the user as well. For example, the look and feelof the building may reflect the stability of the software offering. Astrong, firm building on a strong foundation represents a strongsoftware solution, whereas a dilapidated, run-down building represents aweak software solution.

Once avatar 38 teleports to the front of the Solution A building, ascript is used (e.g., Linden scripts in Second Life®) to access acustomer satisfaction repository 119 (shown in FIG. 7) for Solution A.(“Second Life” is a registered trademark of Linden Research, Inc.) Forexample, XML-RPC calls can be used in scripts to access information incustomer satisfaction repository 119 located in a local storage system,such as storage system 118 shown in FIG. 7, or in a relevant externalrepository. (XML-RPC is a remote procedure call protocol that uses XMLto encode its calls and HTTP as a transport mechanism. The ExtensibleMarkup Language (XML) is a general-purpose specification for creatingcustom markup languages.) As a result, when avatar 38 reaches the frontof a building, the weather around the building is rendered according tothe customer satisfaction information. In another embodiment, SolutionA's customer satisfaction information can be saved with avatarinformation, so the customer satisfaction search is only done duringcertain user specified intervals, or during a default interval (e.g.,every 10 times avatar 38 enters the building). Therefore each timeavatar 38 reaches the building, the surrounding weather is renderedbased upon the saved or recently obtained Solution A customersatisfaction level.

Once avatar 38 enters a building corresponding to the Solution A, theavatar may be presented with a lobby (not shown). The lobby of thebuilding may contain an elevator with a panel, such as panel 40, toselect a floor to visit, as shown in FIG. 5. Panel 40 corresponds to amethod of searching for information about a specific product or otheroffering component. Selecting one of the floors 41A-41N will result inavatar 38 teleporting to that floor or to another building if theoffering component is in fact another solution.

As shown in FIG. 6, avatar 38 may enter a room to obtain furtherinformation about AIX solutions. For example, when avatar 38 reaches aroom, such as room 23B, or shortly thereafter, the Linden scripts areused to access customer satisfaction repository 119 to rendercharacteristics (e.g., a décor) of room 23B. The décor within room 23Bcan be adjusted based on the satisfaction level for respective componentof the corresponding software offering. For example, the color of thewalls or the lighting within the room can be adjusted to indicate acustomer satisfaction level. Or, in another embodiment, the décor of theroom can represent the stability of the software offering. For example,newly painted walls may represent a strong software offering, whereasold, peeling paint may represent an outdated or weak solution.Furthermore, the presence or lack of windows may represent whether ornot the solution or product is self-contained, or whether itcommunicates with the outside world.

As also shown in FIG. 6, room 23B contains a plurality of furnitureitems 42A-42C. During operation, avatar 38 can click on one of pluralityof furniture items 42A-42C to get specific information. Each offurniture items 42A-42C represents a stage of the software offering. Forexample, each of plurality of furniture items 42A-42C may representdifferent stages of a process (e.g., testing or development) and mayoptionally be labeled as such. Avatar 38 can then learn more about the“test” or “development” information of the product (or other stage ofthe solution) by walking to the specific piece of furniture and touchingit. In one embodiment, avatar 38 clicks on a couch 42B and a screen,such as information screen 44, which in this case is dedicated to AIXfunction verification testing (FVT) information, is generated andrendered to avatar 38. Avatar 38 can choose from a number of optionsrelated to FVT, including searching for test scripts, code coverage, ortest script owner information. If avatar 38 chooses one of theseoptions, the search results are initiated (e.g., using XML-RPC in Lindenscripts) to a relevant repository, and the results are rendered oninformation screen 44. In another embodiment, avatar 38 can choose to doa traditional search, which will result in the instantiation of a webpage to initiate a search.

The appearance of each furniture item 42A-42C provides furtherinformation about each stage of a software offering. For example, brokenfurniture in room 23B may represent “defects” in the stage of thesoftware offering. A large, stable couch, for example, may represent arobust, strong solution stage, whereas a small, flimsy rocking chair mayrepresent a weak solution stage.

Furthermore, the presence of virtual insects in a building and/or roommay indicate “bugs” (i.e., defects or errors) in the software offering.For example, as shown in FIG. 6, a bug, such as ladybug 48, is foundwithin room 23B. Ladybug 48 may represent a defect with the component(s)corresponding to the floor in which ladybug 48 is located. The presenceof ladybug 48 is only for “illustrative purposes”, and does notnecessarily imply that there are known bugs within AIX. In anotherembodiment, the type of virtual insect, or the number of virtual insectsassociated with a particular building or floor, etc. may be indicativeof the type of error. For example, a single ladybug found within a roommay represent a relatively minor defect, while an infestation ofcockroaches on multiple floors of a particular building may represent aserious defect with the corresponding software offering.

FIG. 7 depicts an illustrative system 100 for the visualization of asoftware offering using a set of buildings, in accordance with anembodiment of the present invention. System 100 includes aninfrastructure, such as computer infrastructure 102, which can performthe various processes described herein. Computer infrastructure 102 isshown including a system, such as computer system 104. Computer system104 includes a visualization tool 130 having offering component 132configured to represent each of the plurality of software offeringsusing a respective set of buildings in a virtual city environmentaccording to embodiments of the invention, as described herein.Visualization tool 130 further includes display component 134 configuredto display visualization 136 to user 140. Linking component 137 isconfigured to interconnect floors and buildings, while staging component139 is configured to provide a plurality of furniture itemscorresponding to stages of a software offering according to embodimentsof the invention, as described herein.

Visualization tool 130 further comprises satisfaction component 141configured to adjust the visual and audio characteristics of roomswithin buildings, as well as characteristics of the weather surroundingeach building based upon, e.g., the corresponding level of customersatisfaction of an offering or component. Satisfaction component 141 mayoperate with customer satisfaction repository 119 stored in storagesystem 118, or a repository stored at a remote location.

Computer system 104 is shown as including processing unit 108, memory110, at least one input/output (I/O) interface 114, and bus 112.Further, computer system 104 is shown in communication with at least oneexternal device 116 and storage system 118. In general, processing unit108 executes computer program code, such as visualization tool 130, thatis stored in memory 110 and/or storage system 118. While executingcomputer program code, processing unit 108 can read and/or write datafrom/to memory 110, storage system 118, and/or I/O interface(s) 114. Bus112 provides a communication link between each of the components incomputer system 104. External device(s) 116 can comprise any device(e.g., display 120) that enables a user to interact with computer system104 or any device that enables computer system 104 to communicate withone or more other computer systems.

Computer system 104 can comprise any general purpose computing articleof manufacture capable of executing computer program code installed by auser (e.g., a personal computer, server, handheld device, etc.).However, it is understood that computer system 104 is onlyrepresentative of various possible computer systems that may perform thevarious processes of the invention. To this extent, in otherembodiments, computer system 104 can comprise any specific purposecomputing article of manufacture comprising hardware and/or computerprogram code for performing specific functions, any computing article ofmanufacture that comprises a combination of specific purpose and generalpurpose hardware/software, or the like. In each case, the program codeand hardware can be created using standard programming and engineeringtechniques, respectively.

Similarly, computer infrastructure 102 is only illustrative of varioustypes of computer infrastructures that can be used to implement thepresent invention. For example, in an embodiment, computerinfrastructure 102 comprises two or more computer systems (e.g., aserver cluster) that communicate over any type of wired and/or wirelesscommunications link, such as a network, a shared memory, or the like, toperform the various processes of the invention. When the communicationslink comprises a network, the network can comprise any combination ofone or more types of networks (e.g., the Internet, a wide area network,a local area network, a virtual private network, etc.). Regardless,communications between the computer systems may utilize any combinationof various types of transmission techniques.

It is understood that some of the various systems shown in FIG. 7 can beimplemented independently, combined, and/or stored in memory for one ormore separate computer systems that communicate over a network. Further,it is understood that some of the systems and/or functionality may notbe implemented, or additional systems and/or functionality may beincluded as part of system 100.

It is understood that the invention further provides various alternativeembodiments. For example, in an embodiment, the invention provides acomputer-readable medium that includes computer program code to enable acomputer infrastructure to carry out and/or implement the variousprocesses of the present invention. It is understood that the term“computer readable medium” comprises one or more of any type of physicalembodiment of the program code. In particular, the computer-readablemedium can comprise program code embodied on one or more portablestorage articles of manufacture (e.g., a compact disc, a magnetic disk,a tape, etc.), on one or more data storage portions of a computersystem, such as memory 110 and/or storage system 118 (e.g., a fixeddisk, a read-only memory, a random access memory, a cache memory, etc.),and/or as a data signal traveling over a network (e.g., during awired/wireless electronic distribution of the program code).

In another embodiment, the invention provides a business method thatperforms the processes of the invention on a subscription, advertising,and/or fee basis. A service provider can create, maintain, support,etc., a computer infrastructure, such as computer infrastructure 102,that performs the processes of the invention for one or more customers.In return, the service provider can receive payment from the customer(s)under a subscription and/or fee agreement and/or the service providercan receive payment from the sale of advertising space to one or morethird parties.

In still another embodiment, a computer infrastructure, such as computerinfrastructure 102, can be obtained (e.g., created, maintained, havingmade available to, etc.) and one or more systems for performing theprocesses of the invention can be obtained (e.g., created, purchased,used, modified, etc.) and deployed to the computer infrastructure. Tothis extent, the deployment of each system can comprise one or more ofthe following: (1) installing program code on a computer system, such ascomputer system 104, from a computer-readable medium; (2) adding one ormore computer systems to the computer infrastructure; and (3)incorporating and/or modifying one or more existing systems of thecomputer infrastructure, to enable the computer infrastructure toperform the processes of the invention.

As used herein, it is understood that the terms “program code” and“computer program code” are synonymous and mean any expression, in anylanguage, code or notation, of a set of instructions intended to cause acomputer system having an information processing capability to perform aparticular function either directly or after either or both of thefollowing: (a) conversion to another language, code or notation; and (b)reproduction in a different material form. The program code can beembodied as one or more types of program products, such as anapplication/software program, component software/a library of functions,an operating system, a basic I/O system/driver for a particularcomputing and/or I/O device, and the like.

Computer system 104 is configured to implement any/all embodiments ofthe present invention, as detailed above. For example, referring to FIG.8, in step S1, computer system 104 is configured to represent aplurality of complex systems using a respective set of buildings in avirtual city environment. In S2, each of a plurality of floors in eachof the set of buildings is interconnected. In S3, a plurality offurniture items within a room of each of the set of buildings isprovided. In S4, a weather characteristic surrounding each of the set ofbuildings and a characteristic within the room based on a satisfactionlevel for the components of each of the plurality of complex systems isadjusted. In S5, a plurality of furniture items within a room of each ofthe set of buildings is provided. In S6, each of the set of buildings isinterconnected. In S7, the set of buildings in the virtual environmentis displayed.

The flowchart of FIG. 8 illustrates the architecture, functionality, andoperation of possible implementations of systems, methods and computerprogram products according to various embodiments of the presentinvention. In this regard, each block in the flowchart may represent amodule, segment, or portion of code, which comprises one or moreexecutable instructions for implementing the specified logicalfunction(s). It should also be noted that, in some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently. It will also benoted that each block of flowchart illustration can be implemented byspecial purpose hardware-based systems that perform the specifiedfunctions or acts, or combinations of special purpose hardware andcomputer instructions.

The foregoing description of the preferred embodiments of this inventionhas been presented for purposes of illustration and description. It isnot intended to be exhaustive or to limit the invention to the preciseform disclosed, and obviously, many modifications and variations arepossible. For example, although the complex system has been described inthe context of a software offering, another embodiment could map areal-world factory into a set of buildings in a virtual cityenvironment. For example, each product could be a set or subset ofbuildings, wherein each building represents a specific assembly line.The floors within each building may show how the assembly line haschanged over time. Further, the connections between floors within thebuildings show which versions of the other assembly lines were activeduring that phase of the assembly line. Such modifications andvariations that may be apparent to a person skilled in the art areintended to be included within the scope of the invention as defined bythe accompanying claims.

What is claimed is:
 1. A method for generating a visualization ofsoftware code using a set of buildings, comprising: representingsoftware code using a set of buildings in a virtual city environment,wherein each building of the set of buildings represent a softwaresolution; displaying the set of buildings in the virtual cityenvironment; and displaying a plurality of floors and a plurality ofrooms within each of the plurality of floors of the set of buildings,wherein each of the plurality of floors of a building of the set ofbuildings represents a software component of the software solutionrepresented by the building, and wherein each of the plurality of roomswithin each floor of the building represents a different version of thesoftware component represented by the floor of the building.
 2. Themethod of claim 1, further comprising displaying an interconnectionbetween at least two of the plurality of floors, wherein eachinterconnection represents a communication between the softwarecomponents represented by the at least two of the plurality of floors.3. The method of claim 1 further comprising displaying a plurality offurniture items within a room of each of the set of buildings, whereineach of the plurality of furniture items represents a stage of thesoftware code.
 4. The method of claim 3, wherein the room has one ormore characteristics, the method further comprising adjusting acharacteristic within the room based on a satisfaction level for theversion of the software component represented by the room.
 5. The methodof claim 1, further comprising representing a plurality ofinterconnections between at least two buildings of the set of buildings,wherein a higher number of interconnections between two buildings isgenerated to reflect a higher level of interconnectivity between thesoftware solutions represented by the two buildings.
 6. The method ofclaim 5, wherein each of the plurality of interconnections represents aninteraction between the software solutions represented by the at leasttwo buildings, and wherein each of the plurality of interconnections isrepresented as a route traversable by an avatar within the virtual cityenvironment.
 7. The method according to claim 1, further comprisingdisplaying, in the virtual city environment weather characteristicsrepresenting customer satisfaction.
 8. A computer system for generatinga visualization of software code using a set of buildings comprising: atleast one processing unit; memory associated with the at least oneprocessing unit; and a visualization tool storable in memory andexecutable by the at least one processing unit, the visualization toolcomprising a display component configured to: display the set ofbuildings and the plurality of interconnections in the virtual cityenvironment; and display a plurality of floors and a plurality of roomswithin each of the plurality of floors of the set of buildings, whereineach of the plurality of floors of a building of the set of buildingsrepresents a software component of the software solution represented bythe building, and wherein each of the plurality of rooms within eachfloor of the building represents a different version of the softwarecomponent represented by the floor of the building.
 9. The system ofclaim 8 further comprising a linking component configured tointerconnect at least two of the plurality of floors, wherein eachinterconnection represents a communication between the softwarecomponent represented by the at least two of the plurality of floors.10. The system of claim 8 further comprising a staging componentconfigured to provide a plurality of furniture items within a room ofeach of the set of buildings, wherein each of the plurality of furnitureitems represents a stage of the software code.
 11. The system of claim10 further comprising a satisfaction component configured to adjust acharacteristic within the room based on a satisfaction level for theversion of the software component represented by the room.
 12. Acomputer-readable physical storage device storing computer instructions,which when executed, generates a visualization of software code using aset of buildings, the computer instructions comprising: representingsoftware code using a set of buildings in a virtual city environment,wherein each building of the set of buildings represent a softwaresolution; and displaying a plurality of floors and a plurality of roomswithin each of the plurality of floors of the set of buildings, whereineach of the plurality of floors represents a software component of thesoftware solution represented by the building, and wherein each of theplurality of rooms within each floor of the building represents adifferent version of the software component represented by the building.13. The computer-readable physical storage device according to claim 12,further comprising instructions for displaying an interconnectionbetween at least two of the plurality of floors, wherein eachinterconnection represents a communication between the softwarecomponents represented by the at least two of the plurality of floors.14. The computer-readable physical storage device according to claim 12,further comprising instructions for displaying a plurality of furnitureitems within a room of each of the set of buildings, wherein each of theplurality of furniture items represents a stage of the software code.15. The computer-readable physical storage device according to claim 14,wherein the room has one or more characteristics, the computer readablemedium further comprising instructions for adjusting a characteristicwithin the room based on a satisfaction level for the version of thesoftware component represented by the room.
 16. The computer-readablephysical storage device according to claim 12, further comprisingrepresenting a plurality of interconnections between at least twobuildings of the set of buildings, wherein a higher number ofinterconnections between two buildings is generated to reflect a higherlevel of interconnectivity between the software solutions represented bythe two buildings.
 17. The computer-readable physical storage deviceaccording to claim 16, wherein a higher number of interconnectionsbetween two buildings is generated to reflect a higher level ofinterconnectivity between the software solutions represented by the twobuildings.